class HomeFeeClass {
  int flag;
  String buttonFlag;
  int count;
  String message;
  Data data;

  HomeFeeClass(
      {this.flag, this.buttonFlag, this.count, this.message, this.data});

  HomeFeeClass.fromJson(Map<String, dynamic> json) {
    flag = json['flag'];
    buttonFlag = json['buttonFlag'];
    count = json['count'];
    message = json['message'];
    data = json['data'] != null ? new Data.fromJson(json['data']) : null;
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['flag'] = this.flag;
    data['buttonFlag'] = this.buttonFlag;
    data['count'] = this.count;
    data['message'] = this.message;
    if (this.data != null) {
      data['data'] = this.data.toJson();
    }
    return data;
  }
}

class Data {
  int pageNum;
  int pageSize;
  PageInfo pageInfo;

  Data({this.pageNum, this.pageSize, this.pageInfo});

  Data.fromJson(Map<String, dynamic> json) {
    pageNum = json['pageNum'];
    pageSize = json['pageSize'];
    pageInfo = json['pageInfo'] != null
        ? new PageInfo.fromJson(json['pageInfo'])
        : null;
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['pageNum'] = this.pageNum;
    data['pageSize'] = this.pageSize;
    if (this.pageInfo != null) {
      data['pageInfo'] = this.pageInfo.toJson();
    }
    return data;
  }
}

class PageInfo {
  int pageNum;
  int pageSize;
  int size;
  Null orderBy;
  int startRow;
  int endRow;
  int total;
  int pages;
  List<ListDataFree> list;
  int prePage;
  int nextPage;
  bool isFirstPage;
  bool isLastPage;
  bool hasPreviousPage;
  bool hasNextPage;
  int navigatePages;
  List<int> navigatepageNums;
  int navigateFirstPage;
  int navigateLastPage;
  int lastPage;
  int firstPage;

  PageInfo(
      {this.pageNum,
        this.pageSize,
        this.size,
        this.orderBy,
        this.startRow,
        this.endRow,
        this.total,
        this.pages,
        this.list,
        this.prePage,
        this.nextPage,
        this.isFirstPage,
        this.isLastPage,
        this.hasPreviousPage,
        this.hasNextPage,
        this.navigatePages,
        this.navigatepageNums,
        this.navigateFirstPage,
        this.navigateLastPage,
        this.lastPage,
        this.firstPage});

  PageInfo.fromJson(Map<String, dynamic> json) {
    pageNum = json['pageNum'];
    pageSize = json['pageSize'];
    size = json['size'];
    orderBy = json['orderBy'];
    startRow = json['startRow'];
    endRow = json['endRow'];
    total = json['total'];
    pages = json['pages'];
    if (json['list'] != null) {
      list = new List<ListDataFree>();
      json['list'].forEach((v) {
        list.add(new ListDataFree.fromJson(v));
      });
    }
    prePage = json['prePage'];
    nextPage = json['nextPage'];
    isFirstPage = json['isFirstPage'];
    isLastPage = json['isLastPage'];
    hasPreviousPage = json['hasPreviousPage'];
    hasNextPage = json['hasNextPage'];
    navigatePages = json['navigatePages'];
    navigatepageNums = json['navigatepageNums'].cast<int>();
    navigateFirstPage = json['navigateFirstPage'];
    navigateLastPage = json['navigateLastPage'];
    lastPage = json['lastPage'];
    firstPage = json['firstPage'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['pageNum'] = this.pageNum;
    data['pageSize'] = this.pageSize;
    data['size'] = this.size;
    data['orderBy'] = this.orderBy;
    data['startRow'] = this.startRow;
    data['endRow'] = this.endRow;
    data['total'] = this.total;
    data['pages'] = this.pages;
    if (this.list != null) {
      data['list'] = this.list.map((v) => v.toJson()).toList();
    }
    data['prePage'] = this.prePage;
    data['nextPage'] = this.nextPage;
    data['isFirstPage'] = this.isFirstPage;
    data['isLastPage'] = this.isLastPage;
    data['hasPreviousPage'] = this.hasPreviousPage;
    data['hasNextPage'] = this.hasNextPage;
    data['navigatePages'] = this.navigatePages;
    data['navigatepageNums'] = this.navigatepageNums;
    data['navigateFirstPage'] = this.navigateFirstPage;
    data['navigateLastPage'] = this.navigateLastPage;
    data['lastPage'] = this.lastPage;
    data['firstPage'] = this.firstPage;
    return data;
  }
}

class ListDataFree {
  String image;
  String name;
  String vendorCode;
  int learningNum;
  int id;
  String courseId;
  String courseModuleName;
  String urlFlag;
  String fileUrl;
  Null secondProductId;
  String tikuPortalShowFlag;
  Null tikuPaperId;
  Null statusCodeTiku;
  Null customerTikuRecordId;
  String courseTypeCode;
  int currentDetailId;

  ListDataFree(
      {this.image,
        this.name,
        this.vendorCode,
        this.learningNum,
        this.id,
        this.courseId,
        this.courseModuleName,
        this.urlFlag,
        this.fileUrl,
        this.secondProductId,
        this.tikuPortalShowFlag,
        this.tikuPaperId,
        this.statusCodeTiku,
        this.customerTikuRecordId,
        this.courseTypeCode,
        this.currentDetailId});

  ListDataFree.fromJson(Map<String, dynamic> json) {
    image = json['image'];
    name = json['name'];
    vendorCode = json['vendorCode'];
    learningNum = json['learningNum'];
    id = json['id'];
    courseId = json['courseId'];
    courseModuleName = json['courseModuleName'];
    urlFlag = json['urlFlag'];
    fileUrl = json['fileUrl'];
    secondProductId = json['secondProductId'];
    tikuPortalShowFlag = json['tikuPortalShowFlag'];
    tikuPaperId = json['tikuPaperId'];
    statusCodeTiku = json['statusCodeTiku'];
    customerTikuRecordId = json['customerTikuRecordId'];
    courseTypeCode = json['courseTypeCode'];
    currentDetailId = json['currentDetailId'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['image'] = this.image;
    data['name'] = this.name;
    data['vendorCode'] = this.vendorCode;
    data['learningNum'] = this.learningNum;
    data['id'] = this.id;
    data['courseId'] = this.courseId;
    data['courseModuleName'] = this.courseModuleName;
    data['urlFlag'] = this.urlFlag;
    data['fileUrl'] = this.fileUrl;
    data['secondProductId'] = this.secondProductId;
    data['tikuPortalShowFlag'] = this.tikuPortalShowFlag;
    data['tikuPaperId'] = this.tikuPaperId;
    data['statusCodeTiku'] = this.statusCodeTiku;
    data['customerTikuRecordId'] = this.customerTikuRecordId;
    data['courseTypeCode'] = this.courseTypeCode;
    data['currentDetailId'] = this.currentDetailId;
    return data;
  }
}

